filters
Table of contents
표준 Liquid 필터를 모두 지원합니다 (아래 참조).
자주 수행하는 작업들을 더 쉽게하기 위해, Jekyll 만을 위한 몇 가지 유용한 필터가 추가되어 있으며, 모두 이 페이지에 설명되어 있습니다. 게다가 플러그인을 사용하면 자신만의 필터도 만들 수 있습니다.
| 설명 | 필터와 출력 |
|---|---|
| Relative URL 입력값 앞에 baseurl 값을 추가한다. 사이트가 최상위 경로가 아닌 하위 경로에서 호스팅 될 경우 유용하다. | {{ "/assets/style.css" | relative_url }}/my-baseurl/assets/style.css |
| Absolute URL 입력값 앞에 url 과 baseurl 값을 추가한다. | {{ "/assets/style.css" | absolute_url }}http://example.com/my-baseurl/assets/style.css |
| Date to XML Schema 날짜를 XML 스키마 (ISO 8601) 형식으로 변환한다. | {{ site.time | date_to_xmlschema }}2008-11-07T13:07:54-08:00 |
| Date to RFC-822 Format 날짜를 RSS 피드에 사용하는 RFC-822 형식으로 변환한다. | {{ site.time | date_to_rfc822 }}Mon, 07 Nov 2008 13:07:54 -0800 |
| Date to String 날짜를 짧은 형식으로 변환한다. | {{ site.time | date_to_string }}07 Nov 2008 |
| Date to String in ordinal US style 날짜를 미국식 짧은 서수형으로 변환한다. 3.8.0 | {{ site.time | date_to_string: "ordinal", "US" }}Nov 7th, 2008 |
| Date to Long String 날짜를 긴 형식으로 변환한다. | {{ site.time | date_to_long_string }}07 November 2008 |
| Date to Long String in ordinal UK style 날짜를 영국식 긴 서수형으로 변환한다. 3.8.0 | {{ site.time | date_to_long_string: "ordinal" }}7th November 2008 |
| Where 배열 안에서 특정 키와 값을 가진 객체들을 선택한다. | {{ site.members | where:"graduation_year","2014" }} |
| Where Expression 배열 안에서 표현식이 참인 객체들을 선택한다. 3.2.0 | {{ site.members | where_exp:"item", "item.graduation_year == 2014" }}{{ site.members | where_exp:"item", "item.graduation_year < 2014" }}{{ site.members | where_exp:"item", "item.projects contains 'foo'" }} |
| Group By 배열 안의 항목들을 특정 속성으로 그룹 짓는다. | {{ site.members | group_by:"graduation_year" }}[{"name"=>"2013", "items"=>[...]}, {"name"=>"2014", "items"=>[...]}] |
| Group By Expression 배열 안의 항목들을 Liquid 표현식을 사용해 그룹 짓는다. 3.4.0 | {{ site.members | group_by_exp: "item", "item.graduation_year | truncate: 3, ''" }}[{"name"=>"201", "items"=>[...]}, {"name"=>"200", "items"=>[...]}] |
| XML Escape XML 에 사용되는 몇몇 텍스트를 이스케이프 한다. | {{ page.content | xml_escape }} |
| CGI Escape URL 에 사용되는 CGI 이스케이프 문자열. 모든 특수문자를 그에 맞는 %XX 로 변환한다. 일반적으로 CGI 이스케이프에서는 공백이 + 문자로 교체된다. | {{ "foo, bar; baz?" | cgi_escape }}foo%2C+bar%3B+baz%3F |
| URI Escape URI 에 있는 특수 문자들에 퍼센트 문자 인코딩을 한다. 일반적으로 URI 이스케이프에서는 공백이 %20 로 교체된다. 예약 문자들은 이스케이프되지 않는다. | {{ "http://foo.com/?q=foo, \bar?" | uri_escape }}http://foo.com/?q=foo,%20%5Cbar? |
| Number of Words 텍스트 안의 단어 수를 센다. | {{ page.content | number_of_words }}1337 |
| Array to Sentence 배열을 한 문장으로 변환한다. 태그를 나열할 때 유용하다. 커넥터에는 선택사항이다. | {{ page.tags | array_to_sentence_string }}foo, bar, and baz {{ page.tags | array_to_sentence_string: "or" }}foo, bar, or baz |
| Markdownify 마크다운 형식 문자열을 HTML 로 변환한다. | {{ page.excerpt | markdownify }} |
| Smartify "일반 따옴표" 를 “세련된 따옴표”로 변환한다. | {{ page.title | smartify }} |
| Converting Sass/SCSS Sass 또는 SCSS 형식 문자열을 CSS 로 변환한다. | {{ some_sass | sassify }}{{ some_scss | scssify }} |
| Slugify 문자열을 소문자 URL "슬러그"로 변환한다. 자세한 옵션은 아래를 참고하시오. | {{ "The _config.yml file" | slugify }}the-config-yml-file {{ "The _config.yml file" | slugify: "pretty" }}the-_config.yml-file {{ "The _cönfig.yml file" | slugify: "ascii" }}the-c-nfig-yml-file {{ "The cönfig.yml file" | slugify: "latin" }}the-config-yml-file |
| Data To JSON 해시나 배열을 JSON 으로 변환한다. | {{ site.data.projects | jsonify }} |
| Normalize Whitespace 모든 공백문자를 하나의 공백으로 변환한다. | {{ "a \n b" | normalize_whitespace }} |
| Sort 배열을 정렬한다. 해시를 위한 추가 전달인자 1. 프로퍼티 이름 2. nils 순서 (first 또는 last). | {{ page.tags | sort }}{{ site.posts | sort: "author" }}{{ site.pages | sort: "title", "last" }} |
| Sample 배열에서 랜덤으로 값을 하나 선택한다. 선택사항으로, 값을 여러개 고른다. | {{ site.pages | sample }}{{ site.pages | sample: 2 }} |
| To Integer 문자열 또는 부울 값을 정수형으로 변환한다. | {{ some_var | to_integer }} |
| Array Filters 배열에 항목을 삽입, 추출, 순환시킨다. 이 필터는 비파괴적이다. 예시, 해당 배열을 직접 변경하지 않고, 복사본을 만든 후 변경한다. | {{ page.tags | push: "Spokane" }}["Seattle", "Tacoma", "Spokane"] {{ page.tags | pop }}["Seattle"] {{ page.tags | shift }}["Tacoma"] {{ page.tags | unshift: "Olympia" }}["Olympia", "Seattle", "Tacoma"] |
| Inspect 디버깅을 위해 객체를 문자열로 표시한다. | {{ some_var | inspect }} |
slugify 필터의 옵션들
slugify 필터에는 옵션이 있어서, 무엇을 필터링할 것인지 선택할 수 있습니다. 디폴트값은 default 입니다. 옵션값(과 그에 대한 필터링 대상)은 다음과 같습니다:
none: 필터링 안함raw: 공백문자default: 알파벳, 숫자가 아닌 문자 또는 공백문자pretty: 알파벳, 숫자가 아닌 문자 (._~!$&'()+,;=@제외) 또는 공백문자ascii: 알파벳, 숫자, ASCII 가 아닌 문자 또는 공백문자latin:default와 동일하나, 라틴 문자를 우선적으로 변환한다 (예,àèïòü를aeiou로)3.7.0 .
where 필터로 nil 값 찾기4.0
프로퍼티가 nil 이나 "" 인 문서나 페이지를 찾기 위해 where 필터를 사용할 수 있습니다. 예를 들어,
// `nil` 을 사용해서 `my_prop` 이 정의되어 있지 않거나
// 명시적으로 `nil` 이 설정되어 있는 포스트를 찾기
{% assign filtered_posts = site.posts | where: 'my_prop', nil %}
// Liquid 의 특수 리터럴 `empty` 또는 `blank` 를 사용해서
// 변수 `my_prop` 의 값이 비어있는 포스트를 찾기.
{% assign filtered_posts = site.posts | where: 'my_prop', empty %}
이항 연산자와 where_exp 필터4.0
Liquid 의 이항 연산자 or 와 and 를 사용한 표현식을 where_exp 필터에 전달하여 조건문을 여러 개 사용할 수 있습니다.
예를 들어, 영어권의 공포영화에 대한 목록을 얻으려면, 다음 코드를 사용할 수 있을 것입니다:
{{ site.movies | where_exp: "item", "item.genre == 'horror' and item.language == 'English'" }}
또, 만화를 기반으로한 영화의 목록을 얻으려 할 때, 다음과 같이 사용할 수도 있습니다:
{{ site.movies | where_exp: "item", "item.sub_genre == 'MCU' or item.sub_genre == 'DCEU'" }}
기본 Liquid 필터
편의를 돕기 위해, 여기 Liquid 필터 전체 목록에 공식 Liquid 문서의 예제를 링크해두었습니다.